package com.hoas.api.core.intf;

import com.hoas.api.core.entity.UserToken;

public interface TokenStorage {

    /**
     * 保存token
     *  1. 添加 freshToken accessToken 映射
     *  2. 添加 accessToken freshToken 映射
     *  3. 添加 accessToken 用户信息映射
     * @param token
     * @param time
     */
    void storageToken(UserToken token, long time);

    /**
     * 通过 refreshToken 获取 accessToken
     * @param refreshToken
     * @return
     */
    String getAccessToken(String refreshToken);

    /**
     * 通过 accessToken 获取 UserToken对象
     * @param accessToken
     * @return
     */
    UserToken getUserToken(String accessToken);

    /**
     * 通过 通过accessToken清空对应所有缓存
     * @param accessToken
     * @return
     */
    void removeStorage(String accessToken);
}
